package day02;

public class VarExercise1 {
    public static void main(String[] args) {
        /*
        1. 变量的练习：声明、初始化、使用、命名
        2. 基本数据类型的练习：int、long、double、boolean、char
        3. 类型间的转换：两种方式、两点规则
         */
/*
        1. 变量的练习：

        - 声明一个变量，一次声明多个变量。
        - 声明变量直接初始化，先声明变量，而后再给变量初始化。
        - 声明整型变量g，声明另一个整型变量h并赋值为g+10，输出变量h的值。

        - 在g本身基础之上增10，输出变量g的值。
        - 声明一些正确的和错误的变量名。

 */
        int a;
        int b,c,d;
        int f=10;
        int f1;
        f1=12;
        int  g=10;
        int h=g+10;
        System.out.println(h);

        g=g+10;
        System.out.println(g);
        int a1,a_6,$_aa;
//        int 1a;
//        int &;
//        int class;
//        int j=3.14;
        int i;
//        System.out.println(i);
/*
        2. 基本数据类型的练习：int

        - 声明初始化两个以上整数变量，并且输出两个整数变量的除法结果
                - 声明两个很大的变量，然后相加，输出运算结果，测试运算溢出现象
                */
        int a3=2,a2=5;
        System.out.println(a2/a3);
        int max=Integer.MAX_VALUE;
        max=max+1;
        System.out.println(max);
/*
        3. 基本数据类型的练习：long

        - 声明初始化两个以上的长整型变量
                - 声明变量存储几个较大数据的运算，演示：若有可能溢出建议将L设计在第1个数字后。

 */
long l1=100000000000L,l2=10000l;
long l3=100000000*10*2l;
        System.out.println(l3);
        long l4=1000000000*5*10l;
        System.out.println(l4);
        long l5=1000000000L*5*10;
        System.out.println(l5);
/*
        4. 基本数据类型的练习：double

        - 声明初始化两个以上的浮点型变量
                - 声明几个浮点型变量并将它们做数学操作，演示double运算的舍入误差问题

 */

        double d1=5.9,d2=6.9;
        System.out.println(d2-d1);
        double d3=3.2,d4=5.0;
        System.out.println(d4-d3);
        double d5=2.9,d6=3.0;
        System.out.println(d6-d5);

/*
        5. 基本数据类型的练习：boolean

        - 声明初始化两个以上的布尔型变量

 */
        boolean b1=true,b2=false;
//        boolean b3=23;

/*
        6. 基本数据类型的练习：char

        - 声明初始化五个以上的字符型变量
                - 声明字符型变量，演示转义符

 */
        char c1='女';
        char c2='1';
        char c3='m';
        System.out.println(c3);
        char c4=' ';
        System.out.println(c4);
        char c5=65;
        System.out.println(c5);
        char c6='\'';
        System.out.println(c6);
/*
        7. 基本数据类型的转换：两种方式

                - 声明几个变量，演示自动类型转换和强制类型转换的语法
                - 声明一个较大类型的长整型变量，演示强转可能会发生的溢出问题
                - 声明一个较大精度的浮点型变量，演示强转可能会发生的丢失精度问题

 */
        long l0=89;
        int i2=(int)34.56;
        System.out.println(i2);
        long l89=10000000000L;
        int i3=(int)l89;
        System.out.println(i3);
        double d7=1000000000.345;
        int d8=(int)d7;
        System.out.println(d8);
/*
        8. 基本数据类型的转换：两点规则

                - 声明两个byte型变量b1和b2，并赋值为直接量
                - 声明一个byte型变量，并赋值为b1与b2的和

 */
        byte bb1=4,bb2=5;
        byte bb3=(byte)(bb1+bb2);
        System.out.println(bb3);
        System.out.println('2'+'2');
        System.out.println('2'+2);
        System.out.println('2');

        short s1=23,s2=45;
        short s3=(short)(s1+s2);
        System.out.println(s3);







    }
}
